﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using log4net;
using System.Configuration;
using LapvComponent;
using LapvBussiness;
using LapvWebComponent;

namespace Lapv.page
{
    public partial class SurveyManager : System.Web.UI.Page
    {
        public string domain =ConfigLapv.Instance.DomainAdmin;
        private static readonly ILog log = LogManager.GetLogger(typeof(Surveyadd).Name);
        protected void Page_Load(object sender, EventArgs e)
        {
           
            string urlReturn = this.Request.RawUrl.ToString();
            ProviderAdmin.CheckAuthen(urlReturn, 12);
            if (Page.IsPostBack) return;
            bindData();
        }

        private void bindData()
        {
            List<survey> lst = null;
            using (lapvwebEntities db = new lapvwebEntities())
            {
                lst = db.surveys.OrderByDescending(en => en.id).ToList();
            }

            dtgridNews.DataSource = lst;
            dtgridNews.DataBind();

        }
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            string urlReturn = this.Request.RawUrl.ToString();
            ProviderAdmin.CheckAuthen(urlReturn, 1);

            int id = -1;
            ImageButton imageButton = (ImageButton)sender;
            id = int.Parse(imageButton.CommandArgument);
            string msg = "";
            try
            {
                survey sv = null;
                if (id > 0)
                {
                    using (lapvwebEntities db = new lapvwebEntities())
                    {
                        sv = db.surveys.Where(en => en.id == id).FirstOrDefault();
                        if (sv != null)
                        {
                            db.DeleteObject(sv);
                            db.SaveChanges();
                            msg = "Xóa thành đối tượng thăm dò ý kiến có mã " + id;
                            bindData();
                            ((Lapv)this.Master).MessageInfomational = "Xóa thành công đối tượng này.";
                        }
                        else
                        {
                            ((Lapv)this.Master).MessageError = "Không tồn tại đối tượng này.";
                            return;
                        }
                    }
                }
                else ((Lapv)this.Master).MessageError = "Mã của đối tượng thăm dò ý kiến phải nguyên dương.";

            }
            catch (Exception ex)
            {
                msg = "Xóa không thành đối tượng thăm dò ý kiến có mã " + id + ". Do " + ex.Message;
                log.Error(ex.Message, ex);
                ((Lapv)this.Master).MessageError = "Quá trình cập nhật dữ liệu bị lỗi. " + ex.Message;
            }

            try
            {
                int uid = 0;
                string uname = string.Empty;
                uid = ProviderAdmin.GetUsserId();
                if (Session["UserName"] != null)
                    uname = Session["UserName"].ToString();
                ProviderAdmin.AddLog(uid, uname, msg, string.Empty, "SURVEY_DELETE");
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
            }
        }
        public void functionGridNews(object source, DataGridCommandEventArgs evt)
        {
            int newsId = 0;
            switch (evt.CommandName.Trim().ToLower())
            {
                case "edit":
                    try
                    {
                        if (evt.CommandArgument.ToString() != null)
                        {
                            newsId = Convert.ToInt32(evt.CommandArgument);
                            Response.Redirect(domain + "pages/Surveyadd.aspx?newsId=" + Convert.ToString(newsId));
                        }
                    }
                    catch (Exception)
                    {
                        return;
                    }
                    break;
               
            }
        }
    }
}
